当前位置: > 论文中心 > 计算机论文 >

1553B总线远程终端的一种设计(4)

时间:2014-12-02 11:10 点击:
/*清空数据空间*/ /*配置数据空间*/ *(pAceReg+0x0100) = 0x0000; /*堆栈指针A配置*/ /*配置查询表*/ for(i=0;i0x60;i++) { *(pAceReg+0x0140+i) = 0x0400+i*32; } for(i=0;i0x20;i++) { *(pAceReg+

  /*清空数据空间*/

  ……

  /*配置数据空间*/

  *(pAceReg+0x0100) = 0x0000; /*堆栈指针A配置*/

  /*配置查询表*/

  for(i=0;i<0x60;i++)

  {

  *(pAceReg+0x0140+i) = 0x0400+i*32;

  }

  for(i=0;i<0x20;i++)

  {

  *(pAceReg+0x01A0+i) = 0x0420;

  }

  /*初始化发送消息*/

  ……

  3.2 消息中断处理设计

  在初始化中将BU-61580的中断响应设置为消息结束中断,所以在每次完成消息的接受或发送后,BU-61580都会向dsp发送中断请求,当dsp收到中断请求后,产生中断并进入中断处理程序,对于需要立即处理的消息,在中断内直接处理,对以处理量较大消息设消息标志,放主程序处理,主程序根据中断标志处理数据。

  在进入中断处理程序后,首先需要进行的工作是从消息堆栈中读出消息描述,根据消息描述进行标志置位及消息处理。在从消息堆栈中读取消息时需要注意以下几个问题。

  (1)消息堆栈长度为0x100、每个消息描述长度为4,可存储64个消息描述,当消息描述超过64时会产生溢出并循环覆盖,当接收将要溢出的最后一帧消息后,其堆栈指针会从0x0fc变为0x000,此时进行消息描述读取时需注意。

  (2)当1553中断请求未能及时响应,而再次接收到消息时,可能出现两种情况,第一种是,当dsp相应中断,准备去处理第一个消息时,第二个消息已经接收完毕,此时BU-61580的消息堆栈指针指向第二个消息的栈顶。若直接读取堆栈指针进行数据处理可能将前一个消息丢失;第二种情况是,当dsp响应中断,准备去处理第一个消息时,第二个消息正在接收,此时61580的消息堆栈指针指向第二个消息的栈顶。若直接读取堆栈指针进行数据处理的时不仅会丢失前一个消息,而且可能由于第二个消息未接收完毕,处理信息时还是旧信息,而有可能将最新的消息丢失。

  针对上述两个问题,对消息处理进行以下设计:设置指针变量PreStackTop储存上一次处理消息时的栈顶,当有新消息时读取消息堆栈指针存放至StackTop,每一次中断都循环判断PreStackTop与StackTop是否相等,不相等时,根据PreStackTop读取并处理消息,然后将PreStackTop加4(若PreStackTop加4后为0x100则将PreStackTop清零),循环处理,直至与StackTop相等,同时在进行消息处理前首先判断消息是否接收完成,若未完成则结束中断处理,等待下一次中断处理。原理及程序流程见图3和图4。

  4 结语

  为了实现1553B总线通信,本文设计了一种基于dsp加61580的总线远程终端,可以作为总线终端进行通信,经测试该系统能较好地完成同总线控制器(BC)的正常通信,并且在消息量较大的情况下也能稳定工作。本文介绍了该系统硬件和软件的详细设计内容,具有较实用的参考价值。

  参考文献

  [1] 伏鹍,陈绍炜.61580芯片与DSP芯片的连接关系分析[J].信息安全与通信保密,2009(3):82-84.

  [2] 顾骧.用于1553总线控制器的存储单元设计[J].电子科技大学,2003,32(3).

  [3] 林强.dsp在1553总线接口技术中的应用[J].微计算机应用,2004,25(3).

  [4] MSL-STD-1553A/B NOTICE 2 RT and BC/RT/MT,ADVANCED COMMUNICATION ENGINE (ACE)[Z].

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312